package com.kristin;

/**
 * @ClassName Sort
 * @Description TODO
 * @Author Kristin
 * @Date 2021/07/05 16:58:36
 * @Version 1.0.0
 */
public class Sort {


    public static void quickSort(int[] arrs) {
        quickSort(arrs, 0 , arrs.length -1);
    }


    public static void quickSort(int[] arrs, int left, int right) {
        if (left < right) {
            // 获取基准值，并进行分割
            int mid = mid(arrs, left, right);
            quickSort(arrs, left, mid - 1);
            quickSort(arrs, mid + 1, right);
        }
    }

    /**
     * 获取基准值的位置
     *
     * @return
     */
    public static int mid(int[] arrs, int left, int right) {
        //
        int tmp = arrs[left];

        boolean flag = true;
        while (left < right) {
            if (flag) {
                // 首先从右边进行判断
                if (arrs[right] < tmp) {
                    // 赋值到最左边，并移动指针
                    arrs[left] = arrs[right];
                    left++;
                    flag = !flag;
                } else {
                    right--;
                }
            } else {
                // 从左边进行判断
                if (arrs[left] > tmp) {
                    // 赋值到right
                    arrs[right] = arrs[left];
                    right--;
                    flag = !flag;
                } else {
                    left++;
                }
            }
        }


        // 最后left就是基准值所在的位置
        arrs[left] = tmp;
        return left;
    }

    public static void sortPop(int[] arrs) {
        for(int i = 0 ; i < arrs.length - 1 ; i++ ) {
            for(int j = 0 ; j < arrs.length - i - 1 ; j++ ) {
                if(arrs[j] > arrs[j+1]) {
                    int temp = arrs[j];
                    arrs[j] = arrs[j+1];
                    arrs[j+1] = temp;
                }
            }
        }
    }


    public static void main(String[] args) {
        int[] arrs = new int[]{10, 9, 8, 7, 4, 3, 2, 1, 6, 5};
        Sort.sortPop(arrs);
        for (int i : arrs) {
            System.out.print(i + "\t");
        }
    }




}
